package com.aoxin.mapper.opm;

import java.util.List;
import java.util.Map;

import org.apache.ibatis.annotations.Param;

import com.aoxin.model.dto.SelectDto;
import com.aoxin.model.opm.SlfSchool;

/**
 * 学校Mapper
 * 
 * @author Melody
 * @date 2018年3月21日 下午9:30:00
 */
public interface SlfSchoolMapper {

	/**
	 * 批量删除学校
	 * 
	 * @param schoolId
	 *            学校ID
	 */
	void deleteByPrimaryKeys(List<Integer> schoolIds);

	/**
	 * 添加学校
	 * 
	 * @param record
	 *            学校
	 */
	void insertSelective(SlfSchool record);

	/**
	 * 查询学校
	 * 
	 * @param schoolId
	 *            学校ID
	 * @return 学校
	 */
	SlfSchool selectByPrimaryKey(Integer schoolId);

	/**
	 * 修改学校
	 * 
	 * @param record
	 *            学校
	 */
	void updateByPrimaryKeySelective(SlfSchool record);

	/**
	 * 批量修改学校状态
	 * 
	 * @param schoolIds
	 * 
	 *            学校ID集合
	 * @param state
	 *            状态
	 */
	void updateStates(@Param("schoolIds") List<Integer> schoolIds, @Param("state") Integer state);

	/**
	 * 查询学校
	 * 
	 * @param params
	 *            添加集合
	 * @return 学校集合
	 */
	List<SlfSchool> getList(Map<String, Object> params);

	/**
	 * 获取记录数
	 *
	 * @param params
	 *            查询条件
	 * @return 记录数
	 */
	Long getRecordCount(Map<String, Object> params);

	/**
	 * 获取下一排序号
	 * 
	 * @param orgId
	 *            机构ID
	 * @return 序号
	 */
	Long getNextSequence(@Param("orgId") Integer orgId);

	/**
	 * 检查名称重复
	 * 
	 * @param name
	 *            名称
	 * @param schoolId
	 *            学校ID
	 * @return 数据量
	 */
	Long checkName(@Param("name") String name, @Param("schoolId") Integer schoolId);

	/**
	 * 根据机构加载下拉选项
	 * 
	 * @param orgId
	 *            机构ID
	 * @return 学校
	 */
	List<SelectDto> getListByOrg();

	/**
	 * 查询学校下拉树
	 * 
	 * @param orgId
	 *            机构ID
	 * @return 学校
	 */
	List<SelectDto> getSelectList();
	
	//判断组织校区
	Integer IsExistOrgId(Integer orgId);
	
	//学校名字
	String getSchoolName(Integer schoolId);
	
	String getSchoolNameOther(Integer classroomId);
}